// miniprogram/pages/mycard/mycard.js

const app = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
      words:[""],
      select:0,
      prize:null,
      success:false
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    
    //如果用户扫了一遍再进入mycard页面，那么globalData上面则有已经更新了的words
    if(app.globalData.words){
      console.log("已经更新过新获取的卡并设置在globalData上了")
      this.setData({
        words: app.globalData.words
      })
      return
    }

    const db=wx.cloud.database();
    const col = db.collection('collectYou')
    let openid = app.globalData.openid;
    col.where({
      "_openid":openid
    }).get().then( (res)=>{
              console.log('mycard页 用户信息：',res)
              if (res.data.length > 0) { //不是新用户才能获取到
                    this.setData({
                        words:res.data[0].words
                    })
                    //把唯一id设置在全局上
                app.globalData.personId = res.data[0]._id
              }
    } )


  
    // wx.cloud.callFunction({  这里通过云函数获取openid并get数据库里的数据 //不使用，太麻烦
    //   // 要调用的云函数名称
    //   name: 'myPost',
    //   success: (res) => {
    //     // console.log(res.result.user.data[0])
    //     this.setData({
    //       words: res.result.user.data[0].words  //获取用户记录
    //     })
    //     console.log('获取用户记录: ',this.data.words)
    //   },
    //   fail: (err) => {},

    // })
  },
  
  selectOne(event){
    
    let index=event.currentTarget.dataset.who;//当前点击的下标
    let {words,select}=this.data;//获取data中的words （解构

    if( words[index].number == 0){return} //如果点击的邮 一张也没有，直接退出此函数
    if (select >= 2 && !words[index].check){ //已经选中两个了 并且 点击的是没有选中的话
                        return               //直接退出
    }

    if( words[index].check == true ){//如果已经选中
      words[index].check =false;    //现在再次点击则取消选中
      select--; //选中的个数 -1
    }else{                           //如果没选中
      words[index].check = true;    //则改为true选中状态
      select++; //选中的个数 +1
    }
    
//    ！！需要更新数据到data里,才能反映到页面上
      this.setData({
        words:this.data.words,
        select:select
      })
    console.log(index)

  },
 

// 点击合成````````````````````````````````compound
compound(){
  let{select,words}=this.data;
  
  if (select < 2) { //如果 没选够两张就点击合成
    wx.showToast({title: '---请选择两张邮卡---',icon: 'none',duration: 1400})
    return      //提示并退出此函数
  }

  let chooseTwo = []; // 存放用户选择的下标
  words.forEach( (item,index)=>{  //当选中了两张并且点击合成的时候，获取的当前的words是已经更新了check的
      if(item.check == true){     //因此只会有两个的 item.check 为 true
        chooseTwo.push(words[index].type)
      }
  } )

  console.log('选择的两张来合成',chooseTwo)

  wx.showToast({ title: '',icon: 'loading',duration:5000,})// 合成loading

  wx.cloud.callFunction({
    name:'compound',
    data:{
      "chooseTwo": chooseTwo
    },
    success:(res)=>{

        if(!res.result.success){
          wx.showToast({
            title: res.result.tip,
            icon:'none'
          })
          return
        }

        console.log('合成成功',res)
        let prize = res.result.prize;
        wx.showToast({
          title: '合成成功' + prize +"奖",
          icon: 'success',
          duration: 1500,
        })
        let words=res.result.words;
        this.setData({
          words:words,
          select:0,
          prize:prize,
          success:res.result.success
        })//从新渲染 都是从云函数获取的words，所以本来是没有check的
    }
  })

},


  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})